# 拆包：将一个序列的数据拆开为多个数据
# 元组类型
# tu = (1,2,3,4)
# print(tu)
# # 查看数据类型
# print(type(tu))
# # 下标
# print(tu[1])
# # 方法一
# a,b,c,d = tu  #要求元组内部的个数与接收的变量个数相同，有几个数就打印结果变量
# print(a,b,c,d)
#
# a,b = tu
# print(a,b)   # 报错原因：值错误，值太多了

# 方法二
# a, *b = tu  # 使用*进行拆包
# print(a)
# print(b)
# 一般在函数调用时使用
def funa(a, b, *args):     # *args会把多余的参数打包，打包之后的数据类型元组
    print(a, b)
    print(type(args))
    print(args)

arg = (1, 2, 3, 4, 5, 6, 7)
funa(*arg)

# 总结：方法一：一般在要获取元组的值的时候使用
#      方法二: 一般在函数调用的时候使用
# 列表类型
# list1 = [1,3.14, 'susu']
# print(list1[1])


# 装包：将多个值同时赋值给一个变量，默认是元组类型
# a = 10,20,30
# print(a)
# # 查看数据类型
# print(type(a))

